<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>HElib: /HElib/src/PGFFT.cpp File Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">HElib Implementing Homomorphic Encryption</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">PGFFT.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="_p_g_f_f_t_8h_source.html">helib/PGFFT.h</a>&gt;</code><br />
<code>#include &lt;cassert&gt;</code><br />
<code>#include &lt;cstdlib&gt;</code><br />
<code>#include &lt;limits&gt;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacehelib"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html">helib</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a02600ad255ad4b505fc5635bde5a5d94"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a02600ad255ad4b505fc5635bde5a5d94">PGFFT_USE_TRUNCATED_BLUE</a>&#160;&#160;&#160;(1)</td></tr>
<tr class="separator:a02600ad255ad4b505fc5635bde5a5d94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5696bc825a39f94e495ed2e394330e14"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a5696bc825a39f94e495ed2e394330e14">PGFFT_USE_EXPLICIT_MUL</a>&#160;&#160;&#160;(1)</td></tr>
<tr class="separator:a5696bc825a39f94e495ed2e394330e14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae3356b63849abbe8789dd41648ee90a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#aae3356b63849abbe8789dd41648ee90a">RESTRICT</a></td></tr>
<tr class="separator:aae3356b63849abbe8789dd41648ee90a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4634827ac2b2f830f0e7f72b40625da1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a4634827ac2b2f830f0e7f72b40625da1">PGFFT_FFT_RDUP</a>&#160;&#160;&#160;(4)</td></tr>
<tr class="separator:a4634827ac2b2f830f0e7f72b40625da1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b58ed8d0d9ed03edff7eb5a338c9ec8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a1b58ed8d0d9ed03edff7eb5a338c9ec8">fwd_butterfly</a>(xx0,  xx1,  w)</td></tr>
<tr class="separator:a1b58ed8d0d9ed03edff7eb5a338c9ec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18d1be0f2f3d05b082e945309a6c330c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a18d1be0f2f3d05b082e945309a6c330c">fwd_butterfly0</a>(xx0,  xx1)</td></tr>
<tr class="separator:a18d1be0f2f3d05b082e945309a6c330c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30b8b3b3df218737fbcca129c0ac7c1d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a30b8b3b3df218737fbcca129c0ac7c1d">inv_butterfly0</a>(xx0,  xx1)</td></tr>
<tr class="separator:a30b8b3b3df218737fbcca129c0ac7c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9b453ae8f3ce2c45eab8b18205c407d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#aa9b453ae8f3ce2c45eab8b18205c407d">inv_butterfly</a>(xx0,  xx1,  w)</td></tr>
<tr class="separator:aa9b453ae8f3ce2c45eab8b18205c407d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91a2d1b61f4518646c15b3688d0df3b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a91a2d1b61f4518646c15b3688d0df3b0">PGFFT_NEW_FFT_THRESH</a>&#160;&#160;&#160;(10)</td></tr>
<tr class="separator:a91a2d1b61f4518646c15b3688d0df3b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80b56a3c3c0d185bb0999f7fadb1d6fc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a80b56a3c3c0d185bb0999f7fadb1d6fc">PGFFT_BRC_THRESH</a>&#160;&#160;&#160;(11)</td></tr>
<tr class="separator:a80b56a3c3c0d185bb0999f7fadb1d6fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0404c86b711cf9ec6459325b62fa2d13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a0404c86b711cf9ec6459325b62fa2d13">PGFFT_BRC_Q</a>&#160;&#160;&#160;(5)</td></tr>
<tr class="separator:a0404c86b711cf9ec6459325b62fa2d13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff2f784bcf745067662fbc13713fe3c8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#aff2f784bcf745067662fbc13713fe3c8">PGFFT_STRATEGY_NULL</a>&#160;&#160;&#160;(0)</td></tr>
<tr class="separator:aff2f784bcf745067662fbc13713fe3c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3060558e554df783ecdf36fb64b2464b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a3060558e554df783ecdf36fb64b2464b">PGFFT_STRATEGY_POW2</a>&#160;&#160;&#160;(1)</td></tr>
<tr class="separator:a3060558e554df783ecdf36fb64b2464b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a14f1aedf00355967779eed6530a185"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#a2a14f1aedf00355967779eed6530a185">PGFFT_STRATEGY_BLUE</a>&#160;&#160;&#160;(2)</td></tr>
<tr class="separator:a2a14f1aedf00355967779eed6530a185"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac15c9fa3f5275f8109744f14f6692b65"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_p_g_f_f_t_8cpp.html#ac15c9fa3f5275f8109744f14f6692b65">PGFFT_STRATEGY_TBLUE</a>&#160;&#160;&#160;(3)</td></tr>
<tr class="separator:ac15c9fa3f5275f8109744f14f6692b65"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:abd32b2ba6d41fbd5943e40c4371e86a5"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:abd32b2ba6d41fbd5943e40c4371e86a5"><td class="memTemplItemLeft" align="right" valign="top">using&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacehelib.html#abd32b2ba6d41fbd5943e40c4371e86a5">helib::aligned_vector</a> = PGFFT::aligned_vector&lt; T &gt;</td></tr>
<tr class="separator:abd32b2ba6d41fbd5943e40c4371e86a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c94755e338132a41051da4c73f35ae4"><td class="memItemLeft" align="right" valign="top">typedef complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a3c94755e338132a41051da4c73f35ae4">helib::cmplx_t</a></td></tr>
<tr class="separator:a3c94755e338132a41051da4c73f35ae4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9b643292f10bf869b8650f9392ff2d90"><td class="memItemLeft" align="right" valign="top">typedef long double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacehelib.html#a9b643292f10bf869b8650f9392ff2d90">helib::ldbl</a></td></tr>
<tr class="separator:a9b643292f10bf869b8650f9392ff2d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="a1b58ed8d0d9ed03edff7eb5a338c9ec8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b58ed8d0d9ed03edff7eb5a338c9ec8">&#9670;&nbsp;</a></span>fwd_butterfly</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define fwd_butterfly</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx0, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">w&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> \</div>
<div class="line">{ \</div>
<div class="line">   cmplx_t x0_ = xx0; \</div>
<div class="line">   cmplx_t x1_ = xx1; \</div>
<div class="line">   cmplx_t t_  = x0_ -  x1_; \</div>
<div class="line">   xx0 = x0_ + x1_; \</div>
<div class="line">   xx1 = MUL(t_, w); \</div>
<div class="line">}  \</div>
<div class="line">while (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a18d1be0f2f3d05b082e945309a6c330c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18d1be0f2f3d05b082e945309a6c330c">&#9670;&nbsp;</a></span>fwd_butterfly0</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define fwd_butterfly0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx0, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx1&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>   \</div>
<div class="line">{  \</div>
<div class="line">   cmplx_t x0_ = xx0;  \</div>
<div class="line">   cmplx_t x1_ = xx1;  \</div>
<div class="line">   xx0 = x0_ + x1_; \</div>
<div class="line">   xx1 = x0_ - x1_; \</div>
<div class="line">}  \</div>
<div class="line">while (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa9b453ae8f3ce2c45eab8b18205c407d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9b453ae8f3ce2c45eab8b18205c407d">&#9670;&nbsp;</a></span>inv_butterfly</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define inv_butterfly</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx0, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx1, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">w&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>  \</div>
<div class="line">{  \</div>
<div class="line">   cmplx_t x0_ = xx0;  \</div>
<div class="line">   cmplx_t x1_ = xx1;  \</div>
<div class="line">   cmplx_t t_ = CMUL(x1_, w);  \</div>
<div class="line">   xx0 = x0_ + t_;  \</div>
<div class="line">   xx1 = x0_ - t_;  \</div>
<div class="line">} <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a30b8b3b3df218737fbcca129c0ac7c1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a30b8b3b3df218737fbcca129c0ac7c1d">&#9670;&nbsp;</a></span>inv_butterfly0</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define inv_butterfly0</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx0, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">xx1&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span>   \</div>
<div class="line">{  \</div>
<div class="line">   cmplx_t x0_ = xx0;  \</div>
<div class="line">   cmplx_t x1_ = xx1;  \</div>
<div class="line">   xx0 = x0_ + x1_;  \</div>
<div class="line">   xx1 = x0_ - x1_;  \</div>
<div class="line">} <span class="keywordflow">while</span> (0)</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0404c86b711cf9ec6459325b62fa2d13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0404c86b711cf9ec6459325b62fa2d13">&#9670;&nbsp;</a></span>PGFFT_BRC_Q</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_BRC_Q&#160;&#160;&#160;(5)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a80b56a3c3c0d185bb0999f7fadb1d6fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80b56a3c3c0d185bb0999f7fadb1d6fc">&#9670;&nbsp;</a></span>PGFFT_BRC_THRESH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_BRC_THRESH&#160;&#160;&#160;(11)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a4634827ac2b2f830f0e7f72b40625da1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4634827ac2b2f830f0e7f72b40625da1">&#9670;&nbsp;</a></span>PGFFT_FFT_RDUP</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_FFT_RDUP&#160;&#160;&#160;(4)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a91a2d1b61f4518646c15b3688d0df3b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91a2d1b61f4518646c15b3688d0df3b0">&#9670;&nbsp;</a></span>PGFFT_NEW_FFT_THRESH</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_NEW_FFT_THRESH&#160;&#160;&#160;(10)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a2a14f1aedf00355967779eed6530a185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2a14f1aedf00355967779eed6530a185">&#9670;&nbsp;</a></span>PGFFT_STRATEGY_BLUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_STRATEGY_BLUE&#160;&#160;&#160;(2)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aff2f784bcf745067662fbc13713fe3c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff2f784bcf745067662fbc13713fe3c8">&#9670;&nbsp;</a></span>PGFFT_STRATEGY_NULL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_STRATEGY_NULL&#160;&#160;&#160;(0)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3060558e554df783ecdf36fb64b2464b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3060558e554df783ecdf36fb64b2464b">&#9670;&nbsp;</a></span>PGFFT_STRATEGY_POW2</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_STRATEGY_POW2&#160;&#160;&#160;(1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac15c9fa3f5275f8109744f14f6692b65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac15c9fa3f5275f8109744f14f6692b65">&#9670;&nbsp;</a></span>PGFFT_STRATEGY_TBLUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_STRATEGY_TBLUE&#160;&#160;&#160;(3)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a5696bc825a39f94e495ed2e394330e14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5696bc825a39f94e495ed2e394330e14">&#9670;&nbsp;</a></span>PGFFT_USE_EXPLICIT_MUL</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_USE_EXPLICIT_MUL&#160;&#160;&#160;(1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a02600ad255ad4b505fc5635bde5a5d94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02600ad255ad4b505fc5635bde5a5d94">&#9670;&nbsp;</a></span>PGFFT_USE_TRUNCATED_BLUE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define PGFFT_USE_TRUNCATED_BLUE&#160;&#160;&#160;(1)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="aae3356b63849abbe8789dd41648ee90a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aae3356b63849abbe8789dd41648ee90a">&#9670;&nbsp;</a></span>RESTRICT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define RESTRICT</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
